package com.higgins.lawapp.client.settings.rpc;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.higgins.lawapp.client.settings.dataItemModel.DataItemContainerDTO;
import com.higgins.lawapp.client.settings.dataItemModel.DataItemDTO;
import com.higgins.lawapp.client.settings.dataItemModel.DataItemLevelDTO;
import com.higgins.lawapp.client.settings.dataItemModel.DataItemSourceDTO;


/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface DataItemServiceAsync {
	void retrieveDataItems(AsyncCallback<List<DataItemSourceDTO>> callback) throws IllegalArgumentException;
//	void updateDataItemSource(DataItemSourceDTO dataItemSourceDTO, AsyncCallback<String> callback) throws IllegalArgumentException;
	void deleteDataItem(DataItemDTO dataItemDTO, AsyncCallback<String> callback) throws IllegalArgumentException;
	void deleteDataItemLevel(DataItemLevelDTO dataItemLevelDTO, AsyncCallback<String> callback) throws IllegalArgumentException;
	void deleteDataItemSource(DataItemSourceDTO dataItemSourceDTO, AsyncCallback<String> callback) throws IllegalArgumentException;
//	void updateLevelDataItem(String dataItemSourceName, String dataItemLevelName, int dataItemIndex, DataItemDTO dataItemDTO, AsyncCallback<String> callback)	throws IllegalArgumentException;
//	void updateInstanceDataItem(String dataItemSourceName, String dataItemLevelName, String dataItemLevelInstance, int dataItemIndex, DataItemDTO dataItemDTO, AsyncCallback<String> callback)	throws IllegalArgumentException;
//	void retrieveDataItemInstance(String dataSourceName, String dataLevel, String instanceName, AsyncCallback<List<DataItemInstanceDTO>> callback) throws IllegalArgumentException;
	void retrieveDataItemContainers(String dataSource, String dataLevel, String dataInstance, AsyncCallback<DataItemContainerDTO> callback) throws IllegalArgumentException;
}
